iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0

身為一個主力及興趣在後端的Ruby工程師,這次的鐵人賽,想要挑戰難度有那麼一點高的事情~
那就是用我不熟悉的語言去探索自己道行還很初階的前端世界。(希望努力集氣不要斷賽 lol)

第一天來寫一下我的第一個Why。

Day 1. 為什麼要學clojure呢?

Clojure是Lisp程式語言在Java平台上的Functional Programming Language(函數式程式語言)。Functional Programming最大的特點是不可變的(immutable)避免外部狀態相依

相對於物件導向程式((Object Oriented Programming,OOP),Functional Programming是很不一樣的設計。為了防止改變外部狀態的side effect發生,導致資料一直被改動,bug卻不知從何追起的狀況發生,最好的方式是讓作用域只能發生在內部。這種將狀態從外部(全域)拉到內部管理的方式也叫做純函數(Pure function):

Pure functions are not allowed to change their state which is exactly opposite to the OOP where any method can mutate the state of the objects. Ref

當然囉~實作Functional Programming概念的程式語言有很多種,除了Clojure,在此列出最近熱門(常被當作鐵人賽主題)的FP語言:

那,為什麼選Clojure?絕對不是因為我看到一篇reddit的吸睛/金標題Why do Clojure programmers earn so much salary?(:P 誤)

As of Aug 28, 2022, the average annual pay for a Clojure Developer in the United States is $154,180 a year.Ref

作為一門Lisp方言,函式在Clojure中是一等公民。此外,Clojure還支援讀取﹣求值﹣輸出迴圈(Repl)以及一套巨集系統Macro。

2. 為什麼從clojurescript開始學呢?

ClojureScript是Clojure的其中一個版本,可以編譯成JavaScript執行。

更進一步地說,能用JS的地方,都能用 cljs,因為和NPM dependencies無縫接軌地串接整合

只要學一個 Clojure 語言,你就很可能可以辦到Web Server用Clojure, Web Frontend 使用 ClojureScript 來開發的情況。Ref:

根據wiki的說明,統計發現,使用Clojure同時也使用ClojureScript的工程師在2014年為55%,而到了一年後的2015年達到了66%。

對於喜歡一魚二吃的我來說,看到這句話實在是太說服人了呀!

如果這篇文章有一咪咪引起你對Clojure興趣的話,讓我們期待下篇~學習Clojure的勇敢與真實 (clojure-for-the-brave-and-true)


下一篇
[Day02]踏上Clojure / Clojurescript的旅程 - 學習Clojure語法的勇敢與真實
系列文
後端Developer實戰ClojureScript: Reagent與前端框架 Reframe30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Bater
iT邦新手 4 級 ‧ 2022-09-15 09:53:02

近年來很熱門的FP還有Golang, 不過與文章主旨無關。

學習Clojure以後還能同時了解ClojureScript感覺很划算,一魚兩吃真的很有說服力呢!真是太好了,讓人很想學習,充滿期待。

迫不及待想拜讀大大下一篇文章,加油!

謝謝Bater貓~/images/emoticon/emoticon51.gif

我要留言

立即登入留言